package com.medusa.aps.business.modules.security.mp.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.medusa.aps.business.model.pagination.Page;
import com.medusa.aps.business.modules.security.model.input.UserQueryPara;
import com.medusa.aps.business.modules.security.model.output.UserVO;
import com.medusa.aps.business.modules.security.mp.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author: xianhui.yu
 **/
public interface UserMapper extends BaseMapper<User> {

    /**
     * 用户基础信息表列表分页
     *
     * @param userQueryPara 查询参数
     * @return 用户集合
     */
    Page<UserVO> selectUsers(@Param("userQueryPara") UserQueryPara userQueryPara);

    /**
     * 通过账号查找用户信息
     *
     * @param username:
     */
    User selectUserByUsername(@Param("username") String username);

    /**
     * 通过token查找用户信息
     *
     * @param token:
     */
    User getUserInfoByToken(@Param("token") String token);

    /**
     * 通过qq_oppen_id查找用户信息
     *
     * @param qqOppenId:
     */
    User getUserInfoByQQ(@Param("qq_oppen_id") String qqOppenId);

    /**
     * 通过角色ID查询用户集合
     *
     * @param roleId:
     * @return: java.util.List<Role>
     */
    List<User> selectUserByRoleId(@Param("roleId") Integer roleId);

}
